// 非 strict （严格模式）下 this 指向全局对象 浏览器环境下指向 window 对象
console.log('this:', this)

function fun1 () {
    let arg1 = 1
    let arg2 = 'string'
    let arg3 = true
    function arg4() {
        console.log('fun1 内部函数 arg4');
    }
    console.log('函数 fun1 this:', this);
}
fun1.constructor = function() {
    this.arg1 = 'arg1 string'
    function arg4() {
        console.log('fun1 内部函数 arg4');
    }
}
const funObj = new fun1()
// funObj.arg4()
console.log('-------------------------------');
// 
id = 'GLOBAL'
var obj = {
    id: 'obj id',
    a: function () {
        console.log(this.id);
    },
    b: () => {
        console.log(this.id);
    }
}
obj.a()
obj.b()
new obj.a()
// TypeError: obj.b is not a constructor
new obj.b()